gtkfilesystem: Improve heuristics to detect remote filesystem
authorOndrej Holy <oholy@redhat.com>
Wed, 22 Jun 2016 12:04:00 +0000 (14:04 +0200)
committerOndrej Holy <oholy@redhat.com>
Tue, 28 Jun 2016 08:55:06 +0000 (10:55 +0200)
Use G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE to detect remote filesystems
instead of hardcoded list of filesystem types.

Bump required GLib version accordingly.

https://bugzilla.gnome.org/show_bug.cgi?id=767965

configure.ac
gtk/gtkfilesystem.c

index dddd8127847887d5dab08d1ba0d161947b731870..4971ad313d95cc5eaa605d119eb73564db662618 100644 (file)
@@ -43,7 +43,7 @@ m4_define([gtk_binary_version], [3.0.0])
 # required versions of other packages
 m4_define([glib_required_major], [2])
 m4_define([glib_required_minor], [49])
-m4_define([glib_required_micro], [1])
+m4_define([glib_required_micro], [3])
 m4_define([glib_required_version],
           [glib_required_major.glib_required_minor.glib_required_micro])
 m4_define([glib_min_required_minor],
index aac300d9116257f22582d2ffbe8c6cb0ec3d7d5f..f6edb4e2b906f9105855fad4ae79372111839b18 100644 (file)
@@ -902,33 +902,16 @@ _gtk_file_has_native_path (GFile *file)
   return has_native_path;
 }
 
-static const gchar * const remote_types[] = {
-  "afp",
-  "google-drive",
-  "sftp",
-  "webdav",
-  "ftp",
-  "nfs",
-  "cifs",
-  NULL
-};
-
 gboolean
 _gtk_file_consider_as_remote (GFile *file)
 {
   GFileInfo *info;
   gboolean is_remote;
 
-  info = g_file_query_filesystem_info (file, "filesystem::type", NULL, NULL);
+  info = g_file_query_filesystem_info (file, G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE, NULL, NULL);
   if (info)
     {
-      const gchar *type;
-
-      type = g_file_info_get_attribute_string (info, "filesystem::type");
-      if (type != NULL)
-        is_remote = g_strv_contains (remote_types, type);
-      else
-        is_remote = FALSE;
+      is_remote = g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE);
 
       g_object_unref (info);
     }